\section{Introducción}

\subsection{Tecnologías de transmisión}
En un sentido amplio, hay dos tipos de tecnología de transmisión que se 
utilizan de manera extensa. Son las siguientes:
1. Enlaces de tipo broadcast.
2. Enlaces de punto a punto.

\paragraph{}
Las redes de difusión (broadcast) tienen un solo canal de comunicación, 
por lo que todas las máquinas de la red lo comparten. 
Si una máquina envía un mensaje corto —en ciertos contextos
conocido como paquete—, todas las demás lo reciben. 
Un campo de dirección dentro del paquete especifica el destinatario. 
Cuando una máquina recibe un paquete, verifica el campo de dirección.
Si el paquete va destinado a esa máquina, ésta lo procesa; si va 
destinado a alguna otra, lo ignora.

\paragraph{}
Por lo general, los sistemas de difusión también permiten el 
direccionamiento de un paquete a todos los destinos utilizando un 
código especial en el campo de dirección. 
Cuando se transmite un paquete con este código, todas las máquinas de 
la red lo reciben y procesan. 
Este modo de operación se conoce como broadcasting. 
Algunos sistemas también soportan la transmisión a un 
subconjunto de máquinas, algo conocido como multicasting.
Un esquema posible es la reserva de un bit para indicar el multicasting.
Los bits de dirección n – 1 restantes pueden contener un número de grupo. 
Cada máquina puede “suscribirse” a alguno o a todos los grupos. 
Cuando se envía un paquete a cierto grupo, se distribuye a todas las 
máquinas que se suscriben a ese grupo.

\paragraph{}
En contraste, las redes punto a punto constan de muchas conexiones 
entre pares individuales de máquinas. 
Para ir del origen al destino, un paquete en este tipo de red podría 
tener que visitar primero una o más máquinas intermedias. 
A menudo es posible que haya varias rutas o longitudes
diferentes, de manera que encontrar las correctas es importante en 
redes de punto a punto. 
Por regla general (aunque hay muchas excepciones), las redes más 
pequeñas localizadas en una misma área geográfica tienden a utilizar 
broadcast, mientras que las más grandes suelen ser point to point.
La transmisión de punto a punto con un emisor y un receptor se conoce 
como unicasting.


\subsection{Redes de área local}
Las redes de área local (generalmente conocidas como LANs) son redes 
de propiedad privada que se encuentran en un solo edificio o en un 
campus de pocos kilómetros de longitud. 
Se utilizan ampliamente para conectar computadoras personales y 
estaciones de trabajo en oficinas de una empresa y de fábricas para 
compartir recursos (por ejemplo, impresoras) e intercambiar 
información. 
Las LANs son diferentes de otros tipos de redes en tres aspectos: 
1) tamaño; 2) tecnología de transmisión, y 3) topología.

\subsubsection{Tamaño}
Las LANs están restringidas por tamaño, es decir, el tiempo de 
transmisión en el peor de los casos es limitado y conocido de antemano. 
El hecho de conocer este límite permite utilizar ciertos tipos de 
diseño, lo cual no sería posible de otra manera. 
Esto también simplifica la administración de la red.

\subsubsection{Tecnologías de transmisión}
Las LANs podrían utilizar una tecnología de transmisión que consiste 
en un cable al cual están unidas todas las máquinas. 

\subsubsection{Topologías}
Para las LANs de difusión son posibles varias topologías.

\paragraph{}
En una red de bus (es decir, un cable lineal), en cualquier instante 
al menos una máquina es la maestra y puede transmitir. 
Todas las demás máquinas se abstienen de enviar. 
Cuando se presenta el conflicto de que dos o más máquinas desean 
transmitir al mismo tiempo, se requiere un meca nismo de arbitraje. 
Tal mecanismo podría ser centralizado o distribuido. 
Por ejemplo, el IEEE 802.3, popularmente conocido como Ethernet, es 
una red de difusión basada en bus con control descentralizado, que por 
lo general funciona de 10 Mbps a 10 Gbps. 
Las computadoras que están en una Ethernet pueden transmitir siempre 
que lo deseen; si dos o más paquetes entran en colisión, cada 
computadora espera un tiempo aleatorio y lo intenta de nuevo más tarde.

\paragraph{}
Un segundo tipo de sistema de difusión es el de anillo. 
En un anillo, cada bit se propaga por sí mismo, sin esperar al resto 
del paquete al que pertenece. Por lo común, cada bit navega por todo 
el anillo en el tiempo que le toma transmitir algunos bits, a veces 
incluso antes de que se haya transmitido el paquete completo. 
Al igual que con todos los demás sistemas de difusión, se requieren 
algunas reglas para controlar los accesos simultáneos al anillo. 
Se utilizan varios métodos, por ejemplo, el de que las máquinas deben 
tomar su turno. El IEEE 802.5 (el token ring de IBM) es una LAN basada 
en anillo que funciona a 4 y 16 Mbps. El FDDI es otro ejemplo de una 
red de anillo.

\paragraph{}
Las redes de difusión se pueden dividir aún más en estáticas y 
dinámicas, dependiendo de có mo se asigne el canal. 
Una asignación estática típica sería dividir el tiempo en intervalos 
discretos y utilizar un algoritmo round-robin, permitiendo que cada 
máquina transmita sólo cuando llegue su turno. 
La asignación estática desperdicia capacidad de canal cuando una 
máquina no tiene na da que transmitir al llegar su turno, por lo que 
la mayoría de los sistemas trata de asignar el canal de forma dinámica 
(es decir, bajo demanda).

\paragraph{}
Los métodos de asignación dinámica para un canal común pueden ser 
centralizados o descen tralizados. 
En el método centralizado hay una sola entidad, por ejemplo, una 
unidad de arbitraje de bus, la cual determina quién sigue. 
Esto se podría hacer aceptando solicitudes y tomando decisiones de 
acuerdo con algunos algoritmos internos. En el método descentralizado 
de asignación de canal no hay una entidad central; cada máquina debe 
decidir por sí misma cuándo transmitir. 


\subsection{Redes de área metropolitana}
Una red de área metropolitana (MAN) abarca una ciudad. 
El ejemplo más conocido de una MAN es la red de televisión por cable 
disponible en muchas ciudades.

\subsection{Redes de área amplia}
Una red de área amplia (WAN), abarca una gran área geográfica, con 
frecuencia un país o un continente. 
Contiene un conjunto de máquinas diseñado para programas (es decir, 
aplicaciones) de usuario, llamadas hosts. 
Los hosts están conectados por una subred de comunicación, o 
simplemente subred, para abreviar. 
Los clientes son quienes poseen a los hosts (es decir, las computadoras 
personales de los usuarios), mientras que, por lo general, las 
compañías telefónicas o los proveedores de servicios de Internet 
poseen y operan la subred de comunicación. 
La función de una subred es llevar mensajes de un host a otro, como lo 
hace el sistema telefónico con las palabras del que habla al que 
escucha. 
La separación de los aspectos de la comunicación pura de la red 
(la subred) de los aspectos de la aplicación (los hosts), simplifica 
en gran medida todo el diseño de la red.


\paragraph{}
En la mayoría de las redes de área amplia la subred consta de dos 
componentes distintos: líneas de transmisión y elementos de 
conmutación. 
Las líneas de transmisión mueven bits entre máqui nas. Pueden estar 
hechas de cable de cobre, fibra óptica o, incluso, radioenlaces. 
Los elementos de conmutación son computadoras especializadas que 
conectan tres o más líneas de transmisión. Cuando los datos llegan a 
una línea de entrada, el elemento de conmutación debe elegir una línea 
de salida en la cual reenviarlos. Estas computadoras de conmutación 
reciben varios nombres; switches y routers son los más comunes.

\paragraph{}
Cada host está conectado frecuentemente a una LAN en la que existe un 
router, aunque en algunos casos un host puede estar conectado de 
manera directa a un router. 
El conjunto de líneas de comunicación y routers (pero no de hosts) 
forma la subred. 
Cada host está conectado frecuentemente a una LAN en la que existe 
un router, aunque en algunos casos un host puede estar conectado 
de manera directa a un router. 
El conjunto de líneas de comunicación y routers (pero no de hosts) 
forma la subred.

\begin{figure}[H]\centering
\includegraphics[scale=0.08]{./img/intro-lan.png}
\end{figure}

En la mayoría de las WANs, la red contiene numerosas líneas de 
transmisión, cada una de las cuales conecta un par de routers. 
Si dos routers que no comparten una línea de transmisión quieren 
conectarse, deberán hacerlo de manera indirecta, a través de otros 
routers. 
Cuando un paquete es enviado desde un router a otro a través de 
uno o más routers intermedios, el paquete se recibe en cada 
router intermedio en su totalidad, se almacena ahí hasta que la 
línea de salida requerida esté libre y, por último, se reenvía. 
Una subred organizada a partir de este principio se conoce como subred 
de almacenamiento y reenvío (store and forward ) o de conmutación de 
paquetes. 
Casi todas las redes de área amplia (excepto las que utilizan 
satélites) tienen subredes de almacenamiento y reenvío.

\paragraph{}
En general, cuando un proceso de cualquier host tiene un mensaje que se 
va a enviar a un proceso de algún otro host, el host emisor divide 
primero el mensaje en pa quetes, los cuales tienen un número de 
secuencia. 
Estos paquetes se envían entonces por la red de uno en uno en una 
rápida sucesión. Los paquetes se transportan de forma individual a 
través de la red y se depositan en el host receptor, donde se 
reensamblan en el mensaje original y se entregan al proceso receptor. 

\begin{figure}[H]\centering
\includegraphics[scale=0.7]{./img/intro-routing.png}
\end{figure}

En algunas redes todos los paquetes de un mensaje determinado deben 
seguir la misma ruta; en otras, cada paquete se enruta por separado.

\paragraph{}
Las decisiones de routeo se hacen de manera local. 
Cuando un paquete llega al enruta dor A, éste debe decidir si el 
paquete se enviará hacia B o hacia C. La manera en que el router
A toma esa decisión se conoce como algoritmo de routeo.


\subsection{Redes inalámbricas}

Como primera aproximación, las redes inalámbricas se pueden dividir en 
tres categorías principales: 
1. Interconexión de sistemas. 
2. LANs inalámbricas. 
3. WANs inalámbricas.

\subsubsection{Interconexión de sistemas} 
Interconexión de componentes de una computadora que utiliza radio de 
corto alcance. 
Utilizan el paradigma master-slave. 

\subsubsection{LANs inalámbricas} 
Son sistemas en los que cada computadora tiene un módem de radio y 
una antena mediante los que se puede co municar con otros sistemas.
Sin embargo, si los sistemas están lo suficientemente cerca, se pueden 
comunicar de manera directa entre sí en una configuración de igual a 
igual. 

\subsubsection{WANs inalámbricas} 
La red de radio utiliza da para teléfonos celulares es un ejemplo de 
un sistema inalámbrico de banda ancha baja. 

\paragraph{}
La mayoría de las redes inalámbricas se enlaza a la red alámbrica en 
algún punto para propor cionar acceso a archivos, bases de datos e 
Internet. 
Hay muchas maneras de efectuar estas conexiones, dependiendo de las 
circunstancias. 


\subsection{Interredes}
Existen muchas redes en el mundo, a veces con hardware y software 
diferentes. 
Con frecuencia, las personas conectadas a una red desean comunicarse 
con personas conectadas a otra red di ferente. 
La satisfacción de este deseo requiere que se conecten diferentes 
redes, con frecuencia incompatibles, a veces mediante máquinas 
llamadas puertas de enlace (gateways) para hacer la conexión y 
proporcionar la traducción necesaria, tanto en términos de hardware 
como de software. 
Un conjunto de redes interconectadas se llama interred.

\paragraph{}
Una forma común de interred es el conjunto de LANs conectadas por una 
WAN. 
La situación es parecida a la que se ve en la imagen de lans anterior. 
La única diferencia técnica real entre una subred y una WAN es si hay 
hosts presentes. 
Si el sistema que aparece en el área gris contiene solamente 
routers, es una subred; si contiene routers y hosts, es una WAN. 
Las diferencias reales se relacionan con la propiedad y el uso.


\subsection{Software de Redes}
Las primeras redes de computadoras se diseñaron teniendo al hardware 
como punto principal y al software como secundario. 
Esta estrategia ya no funciona. 
Actualmente el software de redes está altamente estructurado

\subsubsection{Jerarquías de protocolos}
Para reducir la complejidad de su diseño, la mayoría de las redes está 
organizada como una pila de capas o niveles, cada una construida a 
partir de la que está debajo de ella. 
El número de capas, así como el nombre, contenido y función de cada una 
de ellas difieren de red a red. 
El propósito de cada capa es ofrecer ciertos servicios a las capas 
superiores, a las cuales no se les muestran los detalles reales de 
implementación de los servicios ofrecidos.

\paragraph{}
La capa n de una máquina mantiene una conversación con la capa n de 
otra máquina. 
Las reglas y convenciones utilizadas en esta conversación se conocen 
de manera colectiva como pro- tocolo de capa n. 
Básicamente, un protocolo es un acuerdo entre las partes en 
comunicación sobre cómo se debe llevar a cabo la comunicación. 
Los datos no se transfieren de manera directa desde la capa n de una 
máquina a la capa n de la otra máquina, sino que cada capa pasa los 
datos y la información de control a la ca- pa inmediatamente inferior, 
hasta que se alcanza la capa más baja. Debajo de la capa 1 se 
encuentra el medio físico a través del cual ocurre la comunicación real. 

\paragraph{}
Entre cada par de capas adyacentes hay una interfaz, que define qué 
operaciones y servicios primitivos pone la capa más baja a disposición 
de la capa superior inmediata. 
Cuando los diseñadores de redes deciden cuántas capas incluir en una 
red y qué debe hacer cada una, una de las consideraciones más 
importantes es definir interfaces limpias entre las capas. 
Hacerlo así, a su vez, requiere que la capa desempeñe un conjunto 
específico de funciones bien entendidas. 
Además de minimizar la cantidad de información que se debe pasar entre 
las capas, las interfaces bien definidas simplifican el reemplazo de la 
implementación de una capa con una implementación totalmente diferente.

\paragraph{}
Un conjunto de capas y protocolos se conoce como arquitectura de red. 
La especificación de una arquitectura debe contener información 
suficiente para permitir que un implementador escriba el programa o 
construya el hardware para cada capa de modo que se cumpla 
correctamente con el protocolo apropiado. Ni los detalles de la 
implementación ni las especificaciones de las in- terfaces son parte 
de la arquitectura porque están ocultas en el interior de las máquinas 
y no son visibles desde el exterior.

\paragraph{}
La lista de protocolos utilizados por un sistema, un protocolo por 
capa, se conoce como pila de protocolos.

Un proceso de aplicación que se ejecuta en la capa 5 produce un 
mensaje, M, y lo pasa a la capa 4 para su transmisión. 
La capa 4 pone un encabezado al frente del mensaje para identificarlo 
y pasa el resultado a la capa 3. 
El encabezado incluye información de control, como números de 
secuencia, para que la capa 4 de la máquina de destino entregue los 
mensajes en el orden correcto si las capas inferiores no mantienen 
la secuencia. 
En algunas capas los encabezados también pueden contener tamaños, 
medidas y otros campos de control. La capa 3 debe desintegrar en 
unidades más pequeñas, paquetes, los mensajes que llegan, y a cada 
paquete le coloca un encabezado. La capa 3 decide cuál de las líneas 
que salen utilizar y pasa los paquetes a la capa 2. 
Ésta no sólo agrega un encabezado a cada pieza, sino también un 
terminador, y pasa la unidad resultante a la capa 1 para su 
transmisión física. 
En la máquina receptora el mensaje pasa hacia arriba de capa en capa, 
perdiendo los encabezados conforme avanza. 
Ninguno de los encabezados de las capas inferiores a n llega a la 
capa n.


\begin{figure}[H]\centering
\includegraphics[scale=0.08]{./img/intro-layers.png}
\end{figure}


La abstracción del proceso de iguales es básica para todo diseño de 
red. 
Al utilizarla, la inmanejable tarea de diseñar toda la red se puede 
fragmentar en varios problemas de diseño más pequeños y manejables, 
es decir, el diseño de las capas individuales.


\subsubsection{Aspectos de diseño de las capas}

% identificación emisor/receptor
Cada capa necesita un mecanismo para identificar a los emisores y a 
los receptores. 
Como consecuencia de tener múltiples destinos, se necesita alguna 
forma de direccionamiento a fin de precisar un destino específico.

% tipo de dato
\paragraph{}
En algunos sistemas, los datos viajan sólo en una dirección; en otros, 
pueden viajar en ambas direc- ciones. 
El protocolo también debe determinar a cuántos canales lógicos 
corresponde la conexión y cuáles son sus prioridades. 
Muchas redes proporcionan al menos dos canales lógicos por conexión, 
uno para los datos normales y otro para los urgentes.

% control de errores
\paragraph{}
El control de errores es un aspecto importante porque los circuitos de 
comunicación física no son perfectos. 
Muchos códigos de detección y corrección de errores son conocidos, pero 
los dos extremos de la conexión deben estar de acuerdo en cuál es el 
que se va a utilizar. 
Además, el receptor debe tener algún medio de decirle al emisor qué 
mensajes se han recibido correctamente y cuáles no.

% orden
\paragraph{}
No todos los canales de comunicación conservan el orden en que se les 
envían los mensajes. 
Para tratar con una posible pérdida de secuencia, el protocolo debe 
incluir un mecanismo que permita al receptor volver a unir los 
pedazos en forma adecuada.

% flow control
\paragraph{}
Un aspecto que ocurre en cada nivel es cómo evitar que un emisor rápido 
sature de datos a un receptor más lento. 
Se han propuesto varias soluciones que explicaremos más adelante. 
Algunas de ellas implican algún tipo de retroalimentación del receptor 
al emisor, directa o indirectamente, dependiendo de la situación 
actual del receptor. Otros limitan al emisor a una velocidad de 
transmisión acordada. 
Este aspecto se conoce como control de flujo.

% particionamiento
\paragraph{}
Otro problema que se debe resolver en algunos niveles es la 
incapacidad de todos los procesos de aceptar de manera arbitraria 
mensajes largos. 
Esta propiedad conduce a mecanismos para desensamblar, transmitir 
y reensamblar mensajes.

% multiplexación
\paragraph{}
Cuando es inconveniente o costoso establecer una conexión separada para 
cada par de procesos de comunicación, la capa subyacente podría decidir 
utilizar la misma conexión para múltiples conversaciones sin 
relación entre sí. 
Siempre y cuando esta multiplexión y desmultiplexión se realice de 
manera transparente, cualquier capa la podrá utilizar. 

% routing
\paragraph{}
Cuando hay múltiples rutas entre el origen y el destino, se debe elegir 
la mejor o las mejores entre todas ellas. 
A veces esta decisión se debe dividir en dos o más capas.


\subsubsection{Servicios orientados (y no orientados) a conexión}

Las capas pueden ofrecer dos tipos de servicios a las capas que están 
sobre ellas: orientados a la conexión y no orientados a la conexión.

\textbf{Orientado a conexión}
El aspecto esencial de una conexión es que funciona como un tubo: 
el emisor empuja objetos (bits) en un extremo y el receptor los toma 
en el otro ex- tremo. 
En la mayoría de los casos se conserva el orden para que los bits 
lleguen en el orden en que se enviaron. En algunos casos, al establecer 
la conexión, el emisor, el receptor y la subred realizan una 
negociación sobre los parámetros que se van a utilizar, como el 
tamaño máximo del mensaje, la calidad del servicio solicitado y 
otros temas. 
Por lo general, un lado hace una propuesta y el otro la acepta, 
la rechaza o hace una contrapropuesta


\textbf{No orientado a conexión}
Cada mensaje lleva completa la dirección de destino y cada una se 
enruta a través del sistema, independientemente de las demás. 
En general, cuando se envían dos mensajes al mismo destino, el primero 
que se envíe será el primero en llegar. 
Sin embargo, es posible que el que se envió primero se retrase
tanto que el segundo llegue primero. 

\paragraph{}
Cada servicio se puede clasificar por la calidad del servicio. 
Algunos servicios son confia- bles en el sentido de que nunca 
pierden datos. 
Por lo general, en un servicio confiable el receptor confirma la 
recepción de cada mensaje para que el emisor esté seguro de que llegó. 
Este proceso de confirmación de recepción introduce sobrecargas y 
retardos, que con frecuencia son valiosos pero a veces son indeseables. 
Para algunas aplicaciones, los retardos de tránsito ocasionados por 
las confirmaciones de recepción son inaceptables. 

\paragraph{}
No todas las aplicaciones requieren conexiones. 
Al servicio no orientado a la conexión no confiable (es decir, sin 
confirmación de recepción) se le conoce como servicio de datagramas 
(best effort?). 
En otras situaciones se desea la conveniencia de no tener que 
establecer una conexión para en- viar un mensaje corto, pero la 
confiabilidad es esencial.

\paragraph{}
Otro servicio más es el de solicitud-respuesta. 
En este servicio el emisor transmite un solo datagrama que contiene 
una solicitud; a continuación el servidor envía la respuesta.


%\subsubsection{Primitivas de servicio}
%
%Un servicio se especifica formalmente como un conjunto de primitivas 
%(operaciones) disponibles a un proceso de usuario para que acceda 
%al servicio. 
%Estas primitivas le indican al servicio que desempeñe alguna acción o 
%reporte sobre una acción que ha tomado una entidad igual.

\subsubsection{Relación de servicios a protocolos}

Un servicio es un conjunto de primitivas (operaciones) que una capa 
proporciona a la capa que está sobre ella. 
El servicio define qué operaciones puede realizar la capa en beneficio 
de sus usuarios, pero no dice nada de cómo se implementan tales 
operaciones. 
Un servicio está relacionado con la interfaz entre dos capas, donde 
la capa inferior es la que provee el servicio y la superior, quien 
lo recibe. 

\paragraph{}
Un protocolo, en contraste, es un conjunto de reglas que rigen el 
formato y el significado de los paquetes, o mensajes, que se 
intercambiaron las entidades iguales en una capa. 
Las entidades utilizan protocolos para implementar sus definiciones 
del servicio. 
Son libres de cambiar sus protocolos cuando lo deseen, siempre y cuando 
no cambie el servicio visible a sus usuarios. 
De esta manera, el servicio y el protocolo no dependen uno del otro.

%\paragraph{}
En otras palabras, los servicios se relacionan con las interacciones 
entre capas; en contraste, los protocolos se relacionan con los 
paquetes enviados entre entidades iguales de máquinas diferentes


\subsection{Modelos de Referencia}
Aunque los protocolos asociados con el modelo OSI ya casi no se usan, 
el modelo en sí es muy general y aún es válido, y las características 
tratadas en cada capa aún son muy importantes. 
El modelo TCP/IP tiene las propiedades opuestas: el modelo en sí 
no se utiliza mucho pero los protocolos sí. 

\subsubsection{OSI}
El modelo OSI tiene siete capas.
Principios para la generación de capas:

\begin{itemize}
    \item   Una capa se debe crear donde se necesite una abstracción 
            diferente.
    \item   Cada capa debe realizar una función bien definida.
    \item   La función de cada capa se debe elegir con la intención de 
            definir protocolos estandarizados internacionalmente.
    \item   Los límites de las capas se deben elegir a fin de 
            minimizar el flujo de información a través de las 
            interfaces.
    \item   La cantidad de capas debe ser suficientemente grande para 
            no tener que agrupar funciones distintas en la misma capa 
            y lo bastante pequeña para que la arquitectura no se 
            vuelva inmanejable.
\end{itemize}

El modelo OSI no es en sí una arquitectura de red, debido a que no 
especifica los servicios y protocolos exactos que se utilizarán en 
cada capa. 
Sólo indica lo que debe hacer cada capa.


\paragraph{Capa Física}
En esta capa se lleva a cabo la transmisión de bits puros a través de 
un canal de comunicación.
Los aspectos del diseño implican asegurarse de que cuando un lado envía 
un bit 1, éste se reciba en el otro lado como tal, no como bit 0.


\paragraph{Capa de Enlace}
La tarea principal de esta capa es transformar un medio de transmisión 
puro en una línea de comunicación que, al llegar a la capa de red, 
aparezca libre de errores de transmisión. 
Logra esta tarea haciendo que el emisor fragmente los datos de entrada 
en tramas de datos (típicamente, de algunos cientos o miles de bytes) 
y transmitiendo las tramas de manera secuencial. 
Si el servicio es confiable, el receptor confirma la recepción 
correcta de cada trama devolviendo una trama de confirmación de 
recepción. 

%\paragraph{}
Otra cuestión que surge en la capa de enlace de datos 
(y en la mayoría de las capas superiores) es cómo hacer que un 
transmisor rápido no sature de datos a un receptor lento. 
Por lo general se necesita un mecanismo de regulación de tráfico 
que indique al transmisor cuánto espacio de buffer tiene el receptor 
en ese momento. 
Con frecuencia, esta regulación de flujo y el manejo de errores
están integrados. 


\paragraph{Capa de Red}
Esta capa controla las operaciones de la subred. 
Un aspecto clave del diseño es determinar cómo se rutean los paquetes 
desde su origen a su destino. 
Las rutas pueden estar basadas en tablas estáticas (routeo 
estático) codificadas en la red.
Cuando un paquete tiene que viajar de una red a otra para llegar a su 
destino, pueden surgir muchos problemas. 
El direccionamiento utilizado por la segunda red podría ser diferente 
del de la primera. 
La segunda podría no aceptar todo el paquete porque es demasiado largo. 
Los protocolos podrían ser diferentes, etcétera. 
La capa de red tiene que resolver todos estos problemas para que las 
redes heterogéneas se interconecten.


\paragraph{Capa de transporte}
La función básica de esta capa es aceptar los datos provenientes de 
las capas superiores, dividirlos en unidades más pequeñas si es 
necesario, pasar éstas a la capa de red y asegurarse de que todas las 
piezas lleguen correctamente al otro extremo.
La capa de transporte es una verdadera conexión de extremo a extremo, 
en toda la ruta desde el origen hasta el destino. 
En otras palabras, un programa en la máquina de origen lleva a cabo 
una conversación con un programa similar en la máquina de destino, 
usando los encabezados de mensaje y los mensajes de control. 
En las capas inferiores, los protocolos operan entre cada máquina 
y sus vecinos inmediatos, y no entre las máquinas de los extremos, 
la de origen y la de destino, las cuales podrían estar separadas 
por muchos routers. 


\paragraph{Capa de Sesión}
Esta capa permite que los usuarios de máquinas diferentes establezcan 
sesiones entre ellos. 
Las sesiones ofrecen varios servicios, como el control de diálogo 
(dar seguimiento de a quién le toca transmitir), administración de 
token (que impide que las dos partes traten de realizar la misma 
operación crítica al mismo tiempo) y sincronización (la adición de 
puntos de referencia a transmisiones largas para permitirles 
continuar desde donde se encontraban después de una caída).


\paragraph{Capa de Presentación}
A diferencia de las capas inferiores, a las que les corresponde 
principalmente mover bits, a la capa de presentación le corresponde 
la sintaxis y la semántica de la información transmitida. 
A fin de que las computadoras con diferentes representaciones de
 datos se puedan comunicar, las estructuras de datos que se 
 intercambiarán se pueden definir de una manera abstracta, junto con 
 una codificación estándar para su uso “en el cable”. 
 La capa de presentación maneja estas estructuras de datos abstractas 
 y permite definir e intercambiar estructuras de datos de un nivel 
 más alto.
 
 
\paragraph{Capa de Aplicación} 
 Esta capa contiene varios protocolos que los usuarios requieren con 
 frecuencia. 
 Un protocolo de aplicación de amplio uso es HTTP, que es la base de 
 WWW.
 
 
\subsubsection{TCP-IP}
 Se quería que las conexiones se mantuvieran intactas en tanto las 
 máquinas de origen y destino estuvieran funcionando, aunque algunas 
 de las máquinas o líneas de transmisión intermedias quedaran fuera 
 de operación repentinamente. 
 Además, se necesitaba una arquitectura flexible debido a que se 
 preveían aplicaciones con requerimientos divergentes, desde 
 transferencia de archivos a transmisión de palabras en tiempo real.

\paragraph{Capa IP}
Los requerimientos llevaron a la elección de una red de conmutación 
de paquetes basada en una capa de interred no orientada a la conexión.
Su trabajo es permitir que los hosts in- yecten paquetes dentro de 
cualquier red y que éstos viajen a su destino de manera independiente 
(podría ser en una red diferente). 
Tal vez lleguen en un orden diferente al que fueron enviados, en cuyo
 caso las capas más altas deberán ordenarlos, si se desea una 
 entrega ordenada.


\paragraph{Capa de Transporte}
Se han definido dos protocolos de transporte de extremo a extremo. 
El primero, TCP (Transmission Control Protocol), es un 
protocolo confiable, orientado a la conexión, que permite que un flujo 
de bytes que se origina en una máquina se entregue sin errores en 
cualquier otra máquina en la interred. 
Divide el flujo de bytes entrantes en mensajes discretos y pasa cada 
uno de ellos a la capa de interred. 
En el destino, el proceso TCP receptor reensambla en el flujo de salida 
los mensajes recibidos. 
TCP también maneja el control de flujo para asegurarse de que un 
emisor rápido no sature a un receptor lento con más mensajes de los 
que puede manejar.

\paragraph{}
El segundo protocolo de esta capa, UDP (User Datagram Protocol), es 
un protocolo no confiable y no orientado a la conexión para 
aplicaciones que no desean la secuenciación o el control de flujo 
de TCP y que desean proporcionar el suyo. 
También tiene un amplio uso en consultas únicas de solicitud-respuesta 
de tipo cliente-servidor en un solo envío, así como aplicaciones en 
las que la entrega puntual es más importante que la precisa, como en la 
transmisión de voz o vídeo. 


\paragraph{}
El modelo TCP/IP no tiene capas de sesión ni de presentación. 
No se han necesitado, por lo que no se incluyen.


\paragraph{Capa de Aplicación}
Contiene todos los protocolos de nivel más alto.


%\subsubsection{Comparación entre OSI y TCP/IP}
%
%Tres conceptos son básicos para el modelo OSI:
%1. Servicios.
%2. Interfaces.
%3. Protocolos.
%
%\paragraph{}
%Probablemente la contribución más grande del modelo OSI es que hace 
%explícita la distinción entre estos tres conceptos. 
%Cada capa desempeña algunos servicios para la capa que está arriba de
%ella. 
%La definición de servicio indica qué hace la capa, no la forma en que 
%la entidad superior tiene acceso a ella, o cómo funciona dicha capa. 
%Define el aspecto semántico de la capa.
%La interfaz de una capa indica a los procesos que están sobre ella 
%cómo accederla. 
%Especifica cuáles son los parámetros y qué resultados se esperan. 
%Incluso, no dice nada sobre cómo funciona internamente la capa. 


